package testpark;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import mat.i2c.master.*;
import java.awt.Color;
import editor.Trame;

public class TestRawPorts extends JPanel
{
    private byte[] codesInitAfficheur = {
	(byte)0x38 << 1,      // adresse
	(byte)0x03,     // start oscillation
	(byte)0x01,     // clear display
	(byte)0x02,     // retrun home
	(byte)0x06,     // entry mode
	(byte)0x0c, //0f,     // cursor control
	(byte)0x1c,     // power control
	(byte)0x38,     // dispaly control
	(byte)0x40 + 8, // contrast control
	(byte)0x60,     // scoll control
	(byte)0xa0,     // CGRAM address
	(byte)0xc0,     // DDRAM address MSB
	(byte)0xe0,     // DDRAM address LSB
	(byte)0x16      // display on
    };
    private byte[] codesInitPCF8574_AUX = {
	(byte)0x20 << 1,
	(byte)0x15};

    private byte[] codesInitBarriere = {
	(byte)0x21 << 1,
	(byte)0xf8
    };

    private Trame panelEditorTrame = new Trame();

    private JButton Transmettre = new JButton();
    private JPanel ledAcquitement = new JPanel();
    private JLabel jLabel1 = new JLabel();
    private JPanel jPanel1 = new JPanel();
    private JButton jButton1 = new JButton();

    public TestRawPorts() {
	try {
	    jbInit();
	}
	catch(Exception e) {
	    e.printStackTrace();
	}
    }

    private void jbInit() throws Exception
    {
	this.setLayout(null);
	this.setPreferredSize(new Dimension(185, 150));
	this.setRequestFocusEnabled(false);
	Transmettre.setText("Transmettre");
	Transmettre.addActionListener(new java.awt.event.ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		Transmettre_actionPerformed(e);
	    }
	});
	Transmettre.setMargin(new Insets(2, 1, 2, 1));
	Transmettre.setHorizontalTextPosition(SwingConstants.CENTER);
	Transmettre.setBackground(new Color(195, 0, 0));
	Transmettre.setBounds(new Rectangle(234, 103, 86, 27));
	Transmettre.setForeground(Color.white);
	panelEditorTrame.setBorder(BorderFactory.createEtchedBorder());
	panelEditorTrame.setBounds(new Rectangle(8, 8, 216, 136));
	ledAcquitement.setBackground(new Color(125, 0, 0));
	ledAcquitement.setBorder(BorderFactory.createEtchedBorder());
	ledAcquitement.setBounds(new Rectangle(36, 26, 19, 11));
	jLabel1.setText("Acquittement");
	jLabel1.setBounds(new Rectangle(11, 6, 75, 17));
	jPanel1.setBorder(BorderFactory.createEtchedBorder());
	jPanel1.setBounds(new Rectangle(231, 8, 91, 47));
	jPanel1.setLayout(null);
	jButton1.setBackground(new Color(225, 195, 0));
	jButton1.setBounds(new Rectangle(246, 66, 61, 24));
	jButton1.setText("Init");
	jButton1.addActionListener(new java.awt.event.ActionListener()
	{
	    public void actionPerformed(ActionEvent e)
	    {
		jButton1_actionPerformed(e);
	    }
	});

	jPanel1.add(jLabel1, null);
	jPanel1.add(ledAcquitement, null);
	this.add(jButton1, null);
	this.add(Transmettre, null);

	this.add(panelEditorTrame, null);
	this.add(jPanel1, null);
    }

    private int doTrame()
    {
	byte[] b = panelEditorTrame.getTrameI2c();
	int n = MasterBusI2c.getInstance().doTransmitTrame(b);
	if (n >= 0) panelEditorTrame.setTrameI2c(b);
	return n;
    }

    private void Transmettre_actionPerformed(ActionEvent e)
    {
	int n = doTrame();
	ledAcquitement.setBackground((n>=0)? Color.green: Color.red);
    }

    void jButton1_actionPerformed(ActionEvent e)
    {
	MasterBusI2c.getInstance().doTransmitTrame(codesInitPCF8574_AUX);
	MasterBusI2c.getInstance().doTransmitTrame(codesInitBarriere);
	MasterBusI2c.getInstance().doTransmitTrame(codesInitAfficheur);
    }


}